//
//  YYExerciseController.swift
//  learn
//
//  Created by temp on 2018/6/30.
//  Copyright © 2018年 lanlyc. All rights reserved.
//

import UIKit

class YYExerciseControllerTwo: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        //字符串操作、数组操作、集合类型、区间、元组可能值
        //1. 补丁 combining Strings and Characters
        let china = "🇨🇳"//会自动推导为字符串，不会推导为字符如果要强制写成字符类型 可以强制写成字符类型比如 let china: Character = "🇨🇳"
        let video = "📚"
        let chineseVideo = china + video
        // "🇨🇳📚"
        let happy = chineseVideo + "好开心"
        // "🇨🇳📚好开心"  +号只能用于同类型的合并,字符串只能加字符串，但是字符串不能加字符
        //以前  String + String
            // String += String
            // String + Character
        
        //现在  String + String
        // String += String
        // String.append(Character)
        
        //2.区间运算符
        for number in 1...5 {
            print("\(number) 3得 \(number * 3)")
        }
        //以前
            // ..     半闭半开
            // ...    全闭
        
        //现在
        // ..<     半闭半开
        // ...    全闭
        
        //3.类型化的集合
        var names: NSArray = ["肖黎明", "小红", "三丧", "乐疯", 42]
        
        //以前
        // var arr: Int[] = [2, 3]
        // var arr: Array<Int> = [2, 3]
        // var arr = Int[]()
        // var names: String[] = ["肖黎明", "小红", "三丧", "乐疯"]
        // Array + Item   Array + Array
        
        //现在
        // var names: [String] = ["肖黎明", "小红", "三丧", "乐疯"] 数组的简写方式
        // var names: Array<String> = ["肖黎明", "小红", "三丧", "乐疯"] 泛型数组 完整写法
        // var arr: [Int] = [2, 3]
        // var arr: Array<Int> = [2, 3]
        // var arr = [Int]()
        // Array.append(Item)   Array + Array
        //  var numberOfLegs = ["ant":6, "snake":0, "dog":4, "cat": 4]//键只能是字符串 值只能是int
        //  var numberOfLegs: Dictionary<String, Int> = ["ant":6, "snake":0, "dog":4, "cat": 4]//这是字典的完整写法
        //  var numberOfLegs: [String, Int] = ["ant":6, "snake":0, "dog":4, "cat": 4]//这是字典的简写写法


        //以前 一个可能值 如果有值 会隐性等价于 ture; 一个可能值 如果没值 会隐性等价于 false
        //        if (possibleLegCount) {
        //            let legCount = possibleLegCount!//可能值解包
        //            print("章鱼有\(legCount)条腿")
        //        }

        //现在 可能值没有隐性等价，必须需要和nil进行判断
        //        if (possibleLegCount != nil) {
        //            let legCount = possibleLegCount!//可能值解包
        //            print("章鱼有\(legCount)条腿")
        //        }


        func refreshWebPage() ->(code: Int, message: String){
            return (200, "Success")
        }
        let status = refreshWebPage()
        print("Received \(status.code):\(status.message)")
        //元组可能值
        //新增 现在元组支持整体加可能 (Int, Int)?
        //注意  (Int？, Int？)和 (Int, Int)?的不同
        //(Int？, Int？)元组是一定存在的 但是元组里的两个东西并不一定存在
        //(Int, Int)? 这个元组有可能在有可能不在 如果元组存在元组中一定有两个值得
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
}

extension Double{
    var km: Double { return self * 1000.0 }
}

